In order to reach potential customers, vendors seek to provide software applications and services that make shopping an easier, more pleasant experience for the customers. The software generally attempts to provide each customer with enough information to encourage a sale but without overwhelming the customer with extra information. Ideally the information provided to the customer is customized based on a vendor's information about the customer's characteristics and preferences. A vendor's information about a customer is generally stored in a vendor-specific customer profile. Each vendor maintains its own database with customer profile information and does not share this information with other vendors. This makes it difficult for a vendor who has not had previous contact with a particular customer to provide an experience that is tailored for that customer. Similarly, the lack of sharing of customer information makes it more difficult for a customer to interact with multiple vendors. For example, a customer attempting to maintain multiple wish lists with multiple vendors is required to manually manage and synchronize the wish lists and, in order to comparison shop, must manually identify products offered by different vendors corresponding to the types of products that the customer is interested in. In sum, existing techniques do not adequately facilitate the sharing of customer information amongst multiple vendors to facilitate a customer's experience with multiple vendors or an individual vendor's ability to customize an experience based on sharable customer information.
In addition, vendors must develop and maintain different applications, webpages, other content-providing software, as well as in-store applications for the variety of different contexts. For example, the different applications must account for different device form factors (e.g., on small-screened mobile device apps, webpages on large-screened computers, in-store devices, etc.), as well as for the different services to be provided to the customer. Developing and maintaining these multiple systems is complex and expensive. Typically, a vendor is required to create, update, and manage individual software for each different context. Existing techniques do not adequately facilitate a vendor's ability to provide webpages, apps, in-store applications, and other offerings that provide customized customer experiences for different customer contexts.